home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Archive-tools / MacBinary II+ 1.0.1 / MacBinary II+ Prelim Spec < prev   
Text File  |  1993-03-17  |  5KB  |  96 lines

  1. MacBinary II+ Preliminary Specification
  2.  
  3. This is a priliminary specification of an extension to the MacBinary II 
  4. Standard to allow MacBinary to incorporate a directory tree in a similar 
  5. way to a unix tar file.  This is done by a fairly simple extension to 
  6. the standard (which is documented seperately, and which you should be 
  7. familiar with before reading this), basically, I defined a 128 byte 
  8. block that marks the start of a folder, and another one that marks the 
  9. end of the folder, and then set it up like this:
  10.  
  11. start block for folder "Folder1"
  12.   file1 - standard macbinary format
  13.   file2
  14.   start block for "Folder2"
  15.     file3
  16.   end block
  17. end block
  18.  
  19. While the end block doesn't actually need to contain any information, its 
  20. format is similar to the header block for consistency.
  21.  
  22. Start Block:
  23.   Offset 000-version 1 - this is incomptible with previous decoders.
  24.   Offset 001-Byte, Length of foldername (must be in the range 1-63)
  25.   Offset 002-1 to 63 chars, foldername (only "length" bytes are significant, 
  26.              the rest should be zero).
  27.   Offset 065-Long Word, file type - 'fold'
  28.   Offset 069-Long Word, file creator - $FFFFFFFF
  29.   Offset 073-Byte, original Finder flags of folder (high byte)
  30.   Offset 074-Byte, zero fill, must be zero for compatibility
  31.   Offset 075-Word, folder's vertical position within its window.
  32.   Offset 077-Word, folder's horizontal position within its window.
  33.   Offset 079-Word, folder's window or folder ID.
  34.   Offset 081-Byte, "Protected" flag (in low order bit).
  35.   Offset 082-Byte, zero fill, must be zero for compatibility
  36.   Offset 083-Long Word, Data Fork length 0
  37.   Offset 087-Long Word, Resource Fork length 0
  38.   Offset 091-Long Word, Folder's creation date
  39.   Offset 095-Long Word, Folder's "last modified" date.
  40.   Offset 099-Word, length of Get Info comment to be sent after the resource
  41.              fork (if implemented, see below).
  42.  *Offset 101-Byte, Finder Flags, bits 0-7. (Bits 8-15 are already in byte 73)
  43.  *Offset 116-Long Word, Length of total files when packed files are unpacked.
  44.              This may be zero to avoid having to preparse the folder when
  45.              creating the MacBinary file.
  46.  *Offset 120-Word, Length of a secondary header.  If this is non-zero,
  47.              Skip this many bytes (rounded up to the next multiple of 128)
  48.              This is for future expansion only, when sending files with
  49.              MacBinary, this word should be zero.
  50.  *Offset 122-Byte, Version number of Macbinary II - 130
  51.  *Offset 123-Byte, Minimum MacBinary II version needed to read this file - 130
  52.  *Offset 124-Word, CRC of previous 124 bytes
  53.  
  54. NOTE: The secondary header length MAY be non-zero, and if so, the secondary 
  55. header immediately follows the Start Block, padded to a multiple of 128 bytes 
  56. as usual.
  57.  
  58. NOTE: The comment length MAY be non-zero, and if so, the comment immediately 
  59. follows the Start Block or secondary header, padded to a multiple of 128 
  60. bytes as usual.
  61.  
  62. End Block:
  63.   Offset 000-version 1 - this is incomptible with previous decoders.
  64.   Offset 065-Long Word, file type - 'fold'
  65.   Offset 069-Long Word, file creator - $FFFFFFFE
  66.  *Offset 116-Long Word, Length of total files when packed files are unpacked.
  67.              This may be zero.
  68.  *Offset 120-Word, Length of a secondary header.  If this is non-zero,
  69.              Skip this many bytes (rounded up to the next multiple of 128)
  70.              This is for future expansion only, when sending files with
  71.              MacBinary, this word should be zero.
  72.  *Offset 122-Byte, Version number of Macbinary II - 130
  73.  *Offset 123-Byte, Minimum MacBinary II version needed to read this file - 130
  74.  *Offset 124-Word, CRC of previous 124 bytes
  75.  
  76. NOTE: This block is static except for the total length field, which may be 
  77. zero as well, in which case its totally static.
  78.  
  79. You should recognize the Start and End blocks by the version, file type and 
  80. creator fields.  Decoders MUST NOT rely on ANY other fields in the End Block 
  81. being valid.  Encoders MAY fill them out to look like a start block, or may 
  82. zero-fill them.  Encoders SHOULD zero-fill any bytes not explicitly set - 
  83. this applies to all header blocks and all padding.
  84.  
  85. All internal files should have version 0, MacBinary II version 129,129.
  86.  
  87. An extended MacBinary file MUST start with a Start Block.  Thus a 
  88. MacBinary II+ file is either:
  89. 1) A MacBinary II file encoding a single file, OR
  90. 2) A MacBinary II+ file encoding a single folder.
  91.  
  92. IMPORTANT: This proposed extentsion is not supported by anyone else, it probably never will be. 
  93.  
  94. If you have any comments, let me know.
  95.    Peter <peter@cujo.curtin.edu.au>
  96.